classdef jwlong_apsyn_class
    %  修改时间： 20240620_08h18m14s
    %     instrreset
    %     1、执行连接函数
    %     source=jwlong_apsyn_class.Conect(...
    %         'USB0::0x03EB::0xAFFF::321-03A100000-0286::0::INSTR');
    
    properties
        obj % 连接仪器的对象       
        idn % 保存仪器的编号    
    end
    
    methods
        function jwl = jwlong_apsyn_class
            %  构造此类的实例
        end
    end
    
    methods(Static)    %不需要创建对象，也可以直接调用的函数  
        function jwl = Conect0(visa_address)
            jwl = jwlong_apsyn_class;
            % 连接仪器，同时读取仪器编号            
            jwl.obj=visadev(visa_address);
            writeline(jwl.obj,"*IDN?");
            jwl.idn=readline(jwl.obj);
        end
        
        function jwl = Conect(company,visa_address)
            jwl = jwlong_apsyn_class;
            % 连接仪器，同时读取仪器编号            
            jwl.obj=visa(company,visa_address);
            % 考虑使用 visadevlist, visadev
            writeline(jwl.obj,"*IDN?");
            jwl.idn=readline(jwl.obj);
        end
    end
    
    methods    % 创建对象后才可以调用的函数 
        function SendMessage(jwl,command)
            % 发送命令
            writeline(jwl.obj,command);
        end
        
%         function y=SendAndReadMessage(jwl,query)
%             % 发送并且读取字符串信息
%             fprintf(jwl.obj,query);
%             y=fscanf(jwl.obj);
%         end
%         
%         function num=SendAndReadNumber(jwl,query)
%             % 发送并且读取字符串信息
%             fprintf(jwl.obj,query);
%             str=fscanf(jwl.obj);
%             num=str2double(str);
%         end
        
        
        function SetFreq(jwl,freq)
            % 设置频率
            writeline(jwl.obj,['SOURce:FREQuency:CW ',num2str(freq)]); 
        end 
        
        function OpenRF(jwl)
            % 打开射频
            writeline(jwl.obj,':OUTPut:STATe ON');
        end
        
        function CloseRF(jwl)
            % 关闭射频
            writeline(jwl.obj,':OUTPut:STATe OFF');
        end
        
        function freq=ReadData(jwl)
            % 读取当前频率
            writeline(jwl.obj,'SOURce:FREQuency:CW?');
            freq=str2double(readline(jwl.obj));  
        end
        
        
    end
end

